<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // 1. 作用域（Scope）
    //     作用域指的是代码中可以访问特定变量、函数和对象的区域。它定义了在某个地方可以访问哪些变量。

    // JavaScript 中的作用域主要分为两种类型：

    //     全局作用域（Global Scope）：在整个程序中都可以访问的作用域。
    //     局部作用域（Local Scope）：在函数内部定义的作用域，变量只能在该函数内部访问。

    // 函数作用域（Function Scope）
    //     在 JavaScript 中，函数是一个局部作用域的创建者，函数内定义的变量只能在函数内访问。

        let globalVar = "I am global";

        function exampleFunction() {
            let localVar = "I am local";
            console.log(globalVar);  // 访问全局变量
            console.log(localVar);   // 访问局部变量
        }

        exampleFunction();

        console.log(localVar);  // 错误！localVar 在函数外部不可访问

    // 块级作用域（Block Scope）
    //     通过 let 和 const 定义的变量有块级作用域，它们仅在其所在的代码块（如 if、for）内部有效。
        if (true) {
            let blockVar = "I am inside a block";
            console.log(blockVar); // 访问块级变量
        }

        console.log(blockVar);  // 错误！blockVar 在块外不可访问

</script>
</html>